Bagaimana ia berfungsi Gnutella

Untuk membayangkan bagaimana Gnutella berfungsi, bayangkan kitaran besar pengguna (dikenali sebagai nod), yang setiap mereka mempunyai aturcara pelanggan Gnutella. Aturcara pelanggan pada penggunaan pertama mesti bootstrap dan menjumpai sekurangnya satu daripada nod yang lain. Kaedah yang berlainan telah digunakan untuk tujuan ini, termasuk senarai sedia ada alamat nod yang berfungsi dihantar bersama aturcara ini, menggunakan tapak Gwebcache pada web untuk mencari nod, termasuk juga menggunakan IRC untuk mencari nod. Kemungkinannya terdapat satu nod (labelkan sebagai B) yang berfungsi. Apabila ia bersambung, nod B akan menghantar kepada nod A senarai nod yang berfungsi kepunyaannya. Nod A akan cuba menyambungkan kepada nod yang terdapat dalam bungkusan penghantaran, dan juga nod yang ia terima dari nod lain, sehingga ia mencapai kuota tertentu, biasanya ditetapkan pengguna. Ia hanya menyambung kepada jumlah nod tersebut, tetapi ia menyimpan nod yang belum dicuba lagi (ia memadamkan nod yang gagal disambung).

Sekarang, apabila pengguna A ingin melakukan carian, ia menghantar permohonan carian kepada setiap nod yang bersambung secara aktif. Terdapat kemungkinan sebahagian daripada mereka tidak lagi berfungsi, dalam kes ini pengguna A cuba menyambung dengan nod yang disimpan sebagai sokongan backup. Jumlah nod yang bersambung secara aktif kepada pengguna A adalah kecil (sekitar 5), jadi setiap nod akan menghantar permohonan tersebut kepada semua nod yang bersambung dengannya, dan mereka akan menghantar permohonan itu, dan seterusnya. Secara teori, permohonan tersebut akhirnya akan sampai kepada semua pengguna jaringan Gnutella.

Sekiranya carian tersebut menghasilkan jumpaan, nod yang menghasilkan sambungan tersebut (yang mana alamat IP termasuk dalam permohonan carian) secara langsung. Mereka berbincang mengenai pindahan fail dan proses pindahan. Jika lebih dari satu salinan fail yang sama dijumpai, pencari boleh melaksanakan pindah terima "berkelompok" - pindah terima sebahagian fail daripada nod berlainan secara serentak. Ini meningkatkan lagi kadar pindah terima.

Akhirnya, apabila pengguna A putus, aturcara pelanggan menyimpan salinan senarai nod yang aktif bersambung, dan disimpan sebagai pendua, untuk kegunaan masa hadapan.

Dalam amalan, pencarian pada jaringan Gnutella biasanya amat lambat dan tidak terjamin. Setiap nod adalah pengguna komputer biasa; oleh itu, mereka sentiasa berpaut dan putus pautan, oleh itu jaringan tersebut tidak pernah stabil. Oleh kerana sambungan pengguna individu biasanya adalah perlahan, ia akan mengambil masa yang lama untuk permohonan pencarian untuk mengembara keseluruhan jaringan (yang purata 100,000 nod sesuatu masa.)

Kebaikan utama mempunyai jaringan tersebar Gnutella adalah ini menjadikannya sukar bagi menutup jaringan tersebut. Tidak seperti Napster, di mana seluruh jaringan bergantung kepada pelayan pusat, Gnutella tidak boleh di tutup dengan menutup mana-mana nod. Selagi terdapat sekurang-kurangnya dua pengguna, Gnutella kekal wujud.

Panduan mudah mengenai bagaimana Gnutella berfungsi boleh di dapati di GnuFU: Gnutella Untuk Pengguna (Gnutella For Users).